﻿layui.config({
    base: '/lib/winui/' //指定 winui 路径
    , version: '1.0.0-beta'
}).define(['table', 'jquery', 'winui'], function (exports) {
    var _access_token = 1;
    winui.renderColor();

    var table = layui.table,
        $ = layui.$,
        tableId = 'tableid';
    //表格渲染
    table.render({
        id: tableId,
        elem: '#role',
        url: '/sysRoleController/findByPage',
        //height: 'full-65', //自适应高度
        //size: '',   //表格尺寸，可选值sm lg
        //skin: '',   //边框风格，可选值line row nob
        even: true,  //隔行变色
        page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
            layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
            , curr: 1 //设定初始在第 5 页
            , groups: 1 //只显示 1 个连续页码
            , first: false //不显示首页
            , last: false //不显示尾页

        },
        limits: [8, 16, 24, 32, 40, 48, 56],
        limit: 8,
        loading: true,
        cols: [[
            {checkbox: true, fixed: true},

            {

                field: 'roleName', title: '角色名称',
            },
            {

                field: 'roleEnname', title: '角色英文名称',
            },
            {

                field: 'roleDataScope', title: '数据范围', templet: "#roleDataScopeTpl"
            },

            {
                fixed: 'right', width: 208, align: 'center', toolbar: '#barDemo', title: "操作"
            }
        ]]
    });
    //监听工具条
    table.on('tool(roletable)', function (obj) { //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
        var data = obj.data; //获得当前行数据
        var layEvent = obj.event; //获得 lay-event 对应的值
        var tr = obj.tr; //获得当前行 tr 的DOM对象
        var ids = '';   //选中的Id
        $(data).each(function (index, item) {
            ids += item.id + ',';
        });
        var data = obj.data;
        if (obj.event === 'detail') {


            top.winui.window.open({
                type: 2, end: function () {
                    window.location.reload();
                },
                title: '查看',
                shadeClose: true,
                shade: 0.8,
                area: ['880px', '90%'],
                maxmin: true,
                content: '/sysRoleController/toUpdate?roleId=' + data.roleId + '&access_token=' + _access_token
            });
        } else if (obj.event === 'del') {
            layer.confirm('删除后不可恢复，是否确认删除？', function (index) {
                // obj.del();

                layer.close(index);

                $ = layui.jquery;

                $.get('/sysRoleController/delete?roleId=' + data.roleId + '&access_token=' + _access_token, '', function () {
                    window.location.reload();
                });
            });
        } else if (obj.event == 'editrole') {

            top.winui.window.open({
                id: 'editRole',
                type: 2,
                end: function () {
                    window.location.reload();
                },
                title: '编辑角色',
                content: '/sysRoleController/toUpdate?roleId=' + data.roleId + '&access_token=' + _access_token,
                area: ['60vw', '70vh'],
                offset: ['15vh', '20vw'],
            });
            // layer.open({
            //     type: 2,            end: function () {                layer.close(index)                top.winui.window.close('addDict');                window.location.reload();            },
            //     title: '修改',
            //     shadeClose: true,
            //     shade: 0.8,
            //     area: ['580px', '90%'],
            //     content: '/sysRoleController/toUpdate?roleId=' + data.roleId + '&access_token=' + _access_token //iframe的url
            // });
        }
        else if (obj.event === 'grant') {

            // var index = top.winui.window.open({
            //     type: 2,            end: function () {                layer.close(index)                top.winui.window.close('addDict');                window.location.reload();            },
            //     title: '授权',
            //     shadeClose: true,
            //     shade: 0.8,
            //     area: ['880px', '90%'],
            //     content: '/sysRoleController/toGrant?access_token=' + _access_token + "&roleId=" + data.roleId //iframe的url
            // });

            var index = top.winui.window.open({
                id: 'grantRole',
                type: 2, end: function () {
                    window.location.reload();
                },
                title: '授权角色',
                content: '/sysRoleController/toGrant?access_token=' + _access_token + "&roleId=" + data.roleId,
                area: ['60vw', '70vh'],
                offset: ['15vh', '20vw'],
            });

            layer.full(index);
        }

        // if (layEvent === 'del') { //删除
        //     deleteRole(ids, obj);
        // } else if (layEvent === 'edit') { //编辑
        //     if (!data.id) return;
        //     var content;
        //     //var index = layer.load(1);
        //     // $.ajax({
        //     //     type: 'get',
        //     //     url: 'edit.html?id=' + data.id,
        //     //     async: true,
        //     //     success: function (data) {
        //     //         layer.close(index);
        //     //         content = data;
        //     //         //从桌面打开
        //     //         top.winui.window.open({
        //     //             id: 'editRole',
        //     //             type: 1,
        //     //             title: '编辑角色',
        //     //             content: content,
        //     //             area: ['60vw', '70vh'],
        //     //             offset: ['15vh', '20vw'],
        //     //         });
        //     //         top.winui.window.msg("选择框带联动的,尽情享用", {
        //     //             time: 2000
        //     //         });
        //     //     },
        //     //     error: function (xml) {
        //     //         layer.close(index);
        //     //         top.winui.window.msg("获取页面失败", {
        //     //             icon: 2,
        //     //             time: 2000
        //     //         });
        //     //         console.log(xml.responseText);
        //     //     }
        //     // });
        // }
    });

    //表格重载
    function reloadTable() {
        table.reload(tableId, {});
    }

    //打开添加页面
    function addRole() {
        // top.winui.window.msg("自行脑补画面", {
        //     icon: 2,
        //     time: 2000
        // });

        // top.winui.window.open({
        //     type: 2,            end: function () {                layer.close(index)                top.winui.window.close('addDict');                window.location.reload();            },
        //     title: '添加',
        //     shadeClose: true,
        //     shade: 0.8,
        //     area: ['580px', '90%'],
        //     content: '/sysRoleController/toAdd?access_token=' + _access_token //iframe的url
        // });

        top.winui.window.open({
            id: 'addRole',
            type: 2,
            end: function () {
                window.location.reload();
            },
            title: '添加角色',
            content: '/sysRoleController/toAdd?access_token=' + _access_token,
            area: ['60vw', '70vh'],
            offset: ['15vh', '20vw'],
        });
    }

    //删除角色
    function deleteRole(ids, obj) {
        var msg = obj ? '确认删除角色【' + obj.data.roleName + '】吗？' : '确认删除选中数据吗？'
        top.winui.window.confirm(msg, {icon: 3, title: '删除系统角色'}, function (index) {
            layer.close(index);
            //向服务端发送删除指令
            //刷新表格
            if (obj) {
                top.winui.window.msg('删除成功', {
                    icon: 1,
                    time: 2000
                });
                obj.del(); //删除对应行（tr）的DOM结构
            } else {
                top.winui.window.msg('向服务端发送删除指令后刷新表格即可', {
                    time: 2000
                });
                reloadTable();  //直接刷新表格
            }
        });
    }

    //绑定按钮事件
    $('#addRole').on('click', addRole);
    $('#deleteRole').on('click', function () {
        var checkStatus = table.checkStatus(tableId);
        var checkCount = checkStatus.data.length;
        if (checkCount < 1) {
            top.winui.window.msg('请选择一条数据', {
                time: 2000
            });
            return false;
        }
        var ids = '';
        $(checkStatus.data).each(function (index, item) {
            ids += item.id + ',';
        });
        deleteRole(ids);
    });
    $('#reloadTable').on('click', reloadTable);

    exports('rolelist', {});
});
